Businesses frequently require software systems that are tailored to their particular industries. For example, dentists may need software systems that help schedule appointments and send bills to insurance companies. In another example, real estate agents may need software systems that help maintain client contact and help generate purchase agreements.
Many of these business-specific software systems require the same general types of functionality. In the previous examples, both the software systems for dentists and the software systems for real estate agents can require database services, web access services, and client contact management services. A service is a program or routine that provides support to other programs.
Re-creating the software code for these common types of functionality for every business-specific software system would be time consuming and expensive. Accordingly, platform applications have been developed. The platform applications provide these common types of functionality. For example, a platform application can provide database services and basic client contact management services.
Other software developers then use such platform applications as platforms upon which to develop software “solutions.” These solutions can add functionality to the platform applications in order to address the needs of businesses in specific industries. For example, a solution can use a client contact management service and a database service provided by a platform application to create a solution tailored to the needs of dental professionals. Businesses can install one or more such solutions on the platform applications.
In addition to adding functionality to platform applications, solutions can modify the user interfaces of platform applications. For instance, a solution can add buttons or forms to the user interface of a platform application. A user interface is a portion of a program with which a user interacts.
Furthermore, in some circumstances, businesses are able to further customize the user interface of the platform application. For example, a business can customize the user interface of the platform application to hide a button or re-label menu items. In another example, a business can customize the user interface of the platform application to add or remove fields from a form. Typically, such customizations are lost whenever the business installs, uninstalls, or updates solutions that build upon the platform application. Because businesses can spend considerable time and resources making the customizations to the user interface, reapplying the customizations can be inconvenient and expensive.